package day05;

/**
 * @author yzh
 * @desc TODO
 * @date 2025/4/14
 */

public class MethodDefine {
    public static void main(String[] args) {
        MethodDefine m = new MethodDefine();
        m.test();
        m.sum(3,5);
        System.out.println(m.sum(2.2, 3.3));
        System.out.println(m.hello());
        System.out.println(print());
    }

    /**
     * 1.声明
     * 语法：[访问权限修饰符public]  void  方法名(){ //方法体 }
     * 特点：没有形式参数 ， 没有返回值
     * 场景：游戏初始化界面，提示的方法等  类似于Scanner中的void close()
     * 调用：类的对象.方法名();
     */
    public void test(){
        System.out.println("hello");
    }

    /**
     * 2.声明
     * 语法：[访问权限修饰符public]  void  方法名(数据类型  形参名1 , 数据类型  形参名2){ //方法体 }
     * 特点：有形式列表 ， 没有返回值
     * 场景：设置值的方法  类似于void setXxx(形参)
     * 调用：类的对象.方法名(形参列表);
     */
    public void sum(int a,int b){
        System.out.println("a+b="+(a+b));
    }

    /**
     * 3.声明
     * 语法：[访问权限修饰符public]  返回值的数据类型  方法名(数据类型  形参名1 , 数据类型  形参名2){ //方法体 }
     * 特点：有形式参数 ， 有返回值
     * 场景：功能性的方法  类似于Random中的int nextInt(int bound)获取随机整数
     * 调用：返回值 = 类的对象.方法名(形参列表);
     */
    public double sum(double a,double b){
        return a+b;
    }

    /**
     * 4.声明  无参  有返回值的方法
     * 语法：[访问权限修饰符public]  返回值的数据类型  方法名(){ //方法体 }
     * 特点：没有形式参数  ， 有返回值
     * 场景：获取值的方法  类似于Scanner类中int nextInt()获取键盘输入的值、getXxx()
     * 调用：返回值 = 类的对象.方法名();
     */
    public String hello(){
        return "hello";
    }

    /**
     * 5.声明 静态的方法
     * 语法：[访问权限修饰符public] static 返回值的数据类型  方法名(){ //方法体 }
     * 特点：方法的修饰符 static
     * 场景：例如：Arrays数组的方法，Math数学类的方法   工具类的方法
     * 调用：类名.方法名();
     */
    public static String print(){
        return "static";
    }
}
